IDIOT COMPILER BLURB PRE_INTERVIEW


Naspite Labs is working on and soon will release the first beta of iDIOT COMPILER.  It was developed entirely in applesoft to translate 'subsets' of applesoft code into machine language.  

The goals of previous official compilers was to be as compatible to Applesoft as possible, allowing for pretty much all capabilities that applesoft provides.  While they are the be-all-end all for compatibility with almost all applesoft code, these requirements also add incredible bloat, which most machine programs dont need, and their hand written assembly companions blaze past speed wise, producing the same result in 10x and sometimes 20x speeds, or even faster compared to 'machine compiled programs.'

The first pillar to bridge the divide of Applesoft and Assembly, Idiot Compiler comes with the perspective of a machine language programmer.  If an Applesoft variable is known in advance to not excede a 'value' in practical application, code to handle 16 bit math is adequate for the job instead of something that handles 40bit math, or the math used in every equation in TASC compilation.  The translation of the many bit math back and forth significantly slows down the apple using a ton of unneeded clock cycles. 

The second pillar it to eliminate a RUNTIME built into most assemblers.  RUNTIMES are rather large chunks of code that house many subroutines.... which in most cases 75% or greater of that code is not even called on for the finished program to run.  For small programs, you automatically have a many sector of memory and disk space overhead to run the simplest of code.  They are clunky not only in memory management, but the side effect is that to use all these routines requires a JSR and RTS statement.  This itself is not bad, but to set up multiple-40bit equations, the added loading of registures and calling routines can be done in straightline execution of direct variables in aprox the same code length just to set up these equations, without the overhead of multiple subroutine calls... thus again another speedup.

Idiot Compiler also "compiles' code each BASIC line seperately from each other, so entire programs need not be fully written to see examples of output code for a particular line.  Each individual line will be saved to its own TEXT file for examination on your compiler disk.

Idiot Compiler will not be entirely full featured for at least a few releases.  The best use of it is to compile sections of applesoft that needs a signficant speedup (assembly language speed) and then call that 'translated basic' from a simple CALL statement.  It will have the capability to process full lenght programs, but this is not the end goal.

Idiot Compiler's mission is to get applesoft programmers code into the league of assembly execution speed... and not just an improvement booster.

Using the 'code generator methods above"... a future program called IDIOT ASSEMBLER 2 will combine both BASIC and ASSEMBLY programming into one application... so one minute you can be programming ASM code, and then switch to BASIC commands on the fly back and forth.  At Naspite, we think this will be one exciting application!

Tom Porter
Naspite Labs

